package flyweight;

/**
 * @Author：LJ
 * @Description：抽象享元角色 即一个产品的抽象类, 定义出了对象的外部状态和内部状态的接口或实现
 * 在抽象角色中一般需要把外部状态和内部状态(当然,可以没有内部状态,只有行为)定义出来，避免子类随意扩展
 * @Date: 2017/12/3
 * @Modified By:
 */
public abstract class Flyweight {
    //内部状态
    private String intrinsic;

    //外部状态
    private final String extrinsic;

    //要求享元角色必须接收外部状态
    public Flyweight(String extrinsic) {
        this.extrinsic = extrinsic;
    }

    //定义业务操作
    public abstract void operate();

    public String getIntrinsic() {
        return intrinsic;
    }

    public void setIntrinsic(String intrinsic) {
        this.intrinsic = intrinsic;
    }
}
